/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.util;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
/**
 *
 * @author rufersic
 */
public class EscribirXml {
    
    public static void generarXml(Automata a){
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder builder = factory.newDocumentBuilder();
DOMImplementation implementation = builder.getDOMImplementation();
Document document=implementation.createDocument(null,"xml", null);

Element raiz = document.createElement("AUTOMATA_AFN");  // creamos el elemento raiz
Element elemento = document.createElement("ALFABETO"); //creamos un nuevo elemento
String cadenaAlfabeto="";
for(String cadena:a.getConjunto_alfabeto()){
cadenaAlfabeto=cadenaAlfabeto+cadena+" ";
}
Text text = document.createTextNode(cadenaAlfabeto); //Ingresamos la info
Element elemento2 = document.createElement("ESTADO"); //creamos un nuevo elemento
String cadenaEstados="";
for(int estate:a.getConjunto_estados()){
cadenaEstados=cadenaEstados+estate+" ";
}
Text text2 = document.createTextNode(cadenaEstados); //Ingresamos la info

Element elemento3 = document.createElement("INICIAL"); //creamos un nuevo elemento
String cadenaEstadoinicial=""+a.getEstado_inicial();
Text text3 = document.createTextNode(cadenaEstadoinicial); //Ingresamos la info

Element elemento4 = document.createElement("FINAL"); //creamos un nuevo elemento
String cadenaEstadosfinales="";
for(int estate:a.getEstados_finales()){
cadenaEstadosfinales=cadenaEstadosfinales+estate+" ";
}
Text text4 = document.createTextNode(cadenaEstadosfinales); //Ingresamos la info

Element elemento5 = document.createElement("TRANSICIONES"); //creamos un nuevo elemento
String cadenaTRANSICIONES="";
for(String cadena:a.getConjunto_trasiciones()){
cadenaTRANSICIONES=cadenaTRANSICIONES+cadena+" ";
}
Text text5 = document.createTextNode(cadenaTRANSICIONES); //Ingresamos la info


document.setXmlVersion("1.0"); // asignamos la version de nuestro XML
document.getDocumentElement().appendChild(raiz);  //pegamos la raiz al documento
raiz.appendChild(elemento); //pegamos el elemento hijo a la raiz
elemento.appendChild(text); //pegamos la info al elemento
raiz.appendChild(elemento2); //pegamos el elemento hijo a la raiz
elemento2.appendChild(text2); //pegamos la info al elemento
raiz.appendChild(elemento3); //pegamos el elemento hijo a la raiz
elemento3.appendChild(text3); //pegamos la info al elemento
raiz.appendChild(elemento4); //pegamos el elemento hijo a la raiz
elemento4.appendChild(text4); //pegamos la info al elemento
raiz.appendChild(elemento5); //pegamos el elemento hijo a la raiz
elemento5.appendChild(text5); //pegamos la info al elemento
Source source = new DOMSource(document);
Result result = new StreamResult(new java.io.File("nuevoAutomata.xml")); //nombre del archivo
Result console= new StreamResult(System.out);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(source, result);
transformer.transform(source, console);
}catch(Exception e){
System.err.println("Error: "+e);
}
    
    }
}
